package org.dromara.device.api;

import org.dromara.device.api.domain.vo.ApiDeviceVo;
import org.dromara.device.api.domain.vo.OrdinaryDeviceVo;

import java.util.List;
import java.util.Map;

/**
 * 设备接口
 */
public interface RemoteDeviceService {
    List<ApiDeviceVo> queryAllList();

    /**
     * 批量更新设备的状态
     * @param deviceList      设备列表
     */
    void updateBatchStatusByDeviceSn(List<ApiDeviceVo> deviceList);

    ApiDeviceVo queryByDeviceSn(String deviceSn);

    /**
     * 根据设备id集合查询设备集合
     * @param deviceIds     设备ID集合
     * @return              设备集合
     */
    List<ApiDeviceVo> queryByDeviceIds(List<Long> deviceIds);


    Map<Long, String> queryNameByDeviceIds(List<Long> deviceIds);

    /**
     * 根据门店id集合查询设备集合
     * @param storeIds  门店id集合
     * @return          设备列表
     */
    List<OrdinaryDeviceVo> queryByStoreIds(List<Long> storeIds);

    /**
     * 查询门店不等于空的设备
     * @return  设备集合
     */
    List<ApiDeviceVo> queryByNotStoreId();

    /**
     * 通过门店id解除门店和设备的关系
     * @param storeId   门店id
     * @return          true：成功 false: 失败
     */
    boolean unbindByStoreId(Long storeId);

}
